package com.yurun.orgstudentmodule.mapper;

import com.yurun.commonapi.dto.StudentNoImportDTO;
import com.yurun.commonapi.dto.StudentSignListDTO;
import com.yurun.commonapi.pojo.Classroom;
import com.yurun.commonapi.pojo.StudentDocument;
import com.yurun.commonapi.pojo.StudentDocumentKey;
import com.yurun.commonapi.pojo.Teacher;
import com.yurun.commonapi.vo.StudentSignListVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigInteger;
import java.util.List;

@Mapper
@Repository
public interface StudentDocumentMapper{
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student_document
     *
     * @mbggenerated
     */
    int deleteByPrimaryKey(StudentDocument key);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student_document
     *
     * @mbggenerated
     */
    int insert(StudentDocument record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student_document
     *
     * @mbggenerated
     */
    int insertSelective(StudentDocument record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student_document
     *
     * @mbggenerated
     */
    StudentDocument selectByPrimaryKey(StudentDocumentKey key);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student_document
     *
     * @mbggenerated
     */
    int updateByPrimaryKeySelective(StudentDocument record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student_document
     *
     * @mbggenerated
     */
    int updateByPrimaryKey(StudentDocument record);

    List<StudentDocument> getAllStudentInfoByOrgId(BigInteger organizationId);

    List<StudentDocument> getAllStudentInfoByOrgIdAndName(StudentDocument studentDocument);

    List<StudentDocument> getAllStudentInfoByBranchIdAndName(StudentDocument studentDocument);

    List<StudentDocument> getAllStudentInfoByBranchId(StudentDocument studentDocument);

    List<StudentDocument> getAllStudentInfoByImport(StudentDocument studentDocument);

    List<StudentDocument> getAllStudentInfoByNoImport(StudentDocument studentDocument);

    StudentDocument getOneStudentInfoByStudentId(StudentDocument studentDocument);

    int delTeacherStudentIds(Teacher teacher);

    List<Teacher> getAllTeacher(StudentDocument studentDocument);

    List<Classroom> getAllClassroom(StudentDocument studentDocument);

    int delClassroomStudent(Classroom classroom);

    StudentDocument getTeacherStudentInfo(BigInteger studentId);

    String getMyStudent(BigInteger employeeId);

    String getMyClassroom(BigInteger employeeId);

    String getClassroomStudent(BigInteger classroomId);

    List<StudentSignListDTO> getStudentSignList(StudentSignListVO studentSignListVO);

    int updateIsImport(StudentDocument studentDocument);

    List<StudentDocument> allStudentInfo(StudentDocument studentDocument);

    List<StudentNoImportDTO> getNoImport(@Param("organizationId")BigInteger organizationId, @Param("branchId")BigInteger branchId);
}